#pragma once

	EXTERN_C
	BOOLEAN CreateFile(UNICODE_STRING ustrFilePath,
		ULONG DesiredAccess,
		ULONG FileAttributes,
		ULONG  ShareAccess,
		ULONG  CreateDisposition,
		ULONG  CreateOptions
	);

	BOOLEAN CreateFileFolder(UNICODE_STRING ustrFileFolderPath);

	BOOLEAN DeleteFileOrFileFolder(UNICODE_STRING ustrFileName);

	// ��ȡ�ļ���С
	ULONG64 GetFileSize(UNICODE_STRING ustrFileName);

	// �������ļ����ļ���
	BOOLEAN RenameFileOrFileFolder(UNICODE_STRING ustrSrcFileName, UNICODE_STRING ustrDestFileName);

	// �����ļ��к��ļ�
	BOOLEAN QueryFileAndFileFolder(UNICODE_STRING ustrPath);

	// ��ȡ�ļ�����
	BOOLEAN ReadFile(UNICODE_STRING ustrFileName, LARGE_INTEGER liOffset, PUCHAR pReadData, PULONG pulReadDataSize);

	// ���ļ�д������
	BOOLEAN WriteFile(UNICODE_STRING ustrFileName, LARGE_INTEGER liOffset, PUCHAR pWriteData, PULONG pulWriteDataSize);

	// �ļ�����
	BOOLEAN CopyFile(UNICODE_STRING ustrScrFile, UNICODE_STRING ustrDestFile);


	NTSTATUS ForceDeleteFile(PWCH ustSrcFile);

